/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modelo;

import controlador.IArticulosAlmacenController;
import java.util.*;
import modelo.persistencia.IArticulosAlmacenDAO;
import modelo.persistencia.ArticulosAlmacenDAO;
/**
 *
 * @author Juanma
 */
public class ArticulosAlmacenModel implements IArticulosAlmacenModel{

    private IArticulosAlmacenController controller;

    public IArticulosAlmacenController getController() {
        return controller;
    }

    public void setController(IArticulosAlmacenController controller) {
        this.controller = controller;
    }

    public IArticulosAlmacen obtenerArticulosAlmecen(int ID) {
        IArticulosAlmacenDAO dao = obtenerImplementacionArticulosAlmacenDAO();
        return dao.read(ID);
    }

    public void actualizarArticulosAlmacen(IArticulosAlmacen articulos,int cant) {
        IArticulosAlmacenDAO dao = obtenerImplementacionArticulosAlmacenDAO();
        dao.update(articulos, cant);
        fireModelChanged();

    }

    public void ComprarArticulosAlmacen(IArticulosAlmacen articulos,int cant) {
        IArticulosAlmacenDAO dao = obtenerImplementacionArticulosAlmacenDAO();
        dao.comprarArticulos(articulos, cant);
        fireModelChanged();

    }

    public void devolverArticulosAlmacen(IArticulosAlmacen articulos,int cant) {
        IArticulosAlmacenDAO dao = obtenerImplementacionArticulosAlmacenDAO();
        dao.devolver(articulos, cant);
        fireModelChanged();
    }

    public List<IArticulosAlmacen> obtenerArticulosAlmacen() {
        IArticulosAlmacenDAO dao = obtenerImplementacionArticulosAlmacenDAO();
        return dao.list();
    }

    private IArticulosAlmacenDAO obtenerImplementacionArticulosAlmacenDAO() {
        return new ArticulosAlmacenDAO();
    }

    protected void fireModelChanged() {
        getController().fireDataModelChanged();
    }
}
